#ifndef __WINDOW_LOGIN_H__
#define __WINDOW_LOGIN_H__

#include "window.h"
#include "sdlImage.h"
#include "sdlButton.h"
#include "sdlSound.h"
#include "sdlStringInput.h"
#include <string>
#include <vector>

class windowLogin: public window{
protected:
    sdlImage background;
    sdlImage imgUser;
    sdlImage imgPass;
    sdlButton botInputU; //boton input user
    sdlButton botInputP; //boton input password
    sdlButton botAccept;
    sdlButton botBack;
	sdlSound sndBotClick; //Sonido al hacer click en un botón
	sdlStringInput entradaU; //entrada para el usuario
	sdlStringInput entradaP; //entrada para la password
	bool writingUser;
	bool writingPass;
public:
	windowLogin(sdlScreen&);
	virtual void show();
	virtual bool handleEvent(const SDL_Event&, window*&);
	virtual ~windowLogin();
protected:
	//Maneja un boton de entrada de datos.
	//Si el input es del usuario el bool debe ser true
	void handleBotInput(std::vector<sdlStringInput*>&, std::vector<bool*>&, unsigned);
	//Maneja el boton aceptar.
	//Utiliza la función procesar datos. El string es el path de la imagen
	//en caso de error.
	window* handleBotAccept(std::vector<sdlStringInput*>&,
	std::vector<bool*>&,std::string&);
	//Maneja el boton volver
	window* handleBotBack();
	//Maneja el enter
	window* handleReturn(std::vector<sdlStringInput*>&, std::vector<bool*>&);
	//Maneja el tab
	void handleTab(std::vector<sdlStringInput*>&, std::vector<bool*>&);
private:
	//Envia los datos del usuario y recibe una respuesta para
	//saber si son válidos o no
	virtual bool procesarDatos();
};

#endif // __WINDOW_LOGIN_H__
